myseek :: Command.Sync.SyncOptions -> CommandSeek
myseek o = startConcurrency transferStages $ do
- -- Run before prepMerge so it adds only files in the current
- -- directory and below, not new files elsewhere in the working
- -- tree.
+ -- Changes to top of repository, so when this is run in a
+ -- subdirectory, it will still default to adding files anywhere in
+ -- the working tree.
+ Command.Sync.prepMerge
+
Command.Add.seek Command.Add.AddOptions
- { Command.Add.addThese = []
+ { Command.Add.addThese = Command.Sync.contentOfOption o
, Command.Add.batchOption = NoBatch
, Command.Add.updateOnly = False
, Command.Add.largeFilesOverride = Nothing
-- Flush added files to index so they will be committed.
Annex.Queue.flush
- Command.Sync.prepMerge
Command.Sync.seek' o
at the command line, since only this one command needs to be run on a
regular basis.
-This command first adds any new files (in the current directory and
-its children) to the repository, and commits those as well as any
-modified files. Then it does the equivilant of running
+This command first adds any new files to the repository, and commits those
+as well as any modified files. Then it does the equivilant of running
[[git-annex-pull](1) followed by [[git-annex-push]](1).
+This command operates on all files in the whole working tree,
+even when ran in a subdirectory. To limit it to operating on files in a
+subdirectory, use the `--content-of` option.
+
To block some files from being added to the repository, use `.gitignore`
files.
Use this option to specify a commit message.
+* `--content-of=path` `-C path`
+
+ Only add, pull, and push files in the given path.
+
+ This option can be repeated multiple times with different paths.
+
* Also all options supported by [[git-annex-pull]](1) and
[[git-annex-push]](1) can be used.
--- /dev/null
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 12"""
+ date="2023-05-19T18:37:28Z"
+ content="""
+I'm also not too happy with the inconsistency of assist committing all staged
+changes and syncing all file contents, but only adding files in the cwd.
+
+I suppose that consistency with the assistant doesn't really matter. The
+assistant's behavior when ran in a subdirectory is surprising,
+inconsistent, and undocumented.
+
+So I'm going to change assist to add all files. Except when -C is used,
+then only add files in the specified directory.
+"""]]